IF EXISTS (SELECT * FROM SYSOBJECTS WHERE name='spSeguridadMessageException_Update' and XTYPE='P')
BEGIN
	DROP PROCEDURE [dbo].[spSeguridadMessageException_Update]
END
GO
CREATE PROCEDURE [dbo].[spSeguridadMessageException_Update]
	 @OP VARCHAR(64)=NULL
	,@ParamAuxiliar NVARCHAR(MAX)=NULL
	,@ID INT=NULL
	,@FechaGrab SMALLDATETIME=NULL
	,@usuario VARCHAR(32)=NULL
	,@ERROR_NUMBER INT=NULL
	,@ERROR_SEVERITY INT=NULL
	,@ERROR_STATE INT=NULL
	,@ERROR_PROCEDURE VARCHAR(128)=NULL
	,@ERROR_LINE INT=NULL
	,@ERROR_MESSAGE VARCHAR(2048)=NULL
	,@ERROR_MESSAGE_MODIFIED VARCHAR(2048)=NULL
    ,@ERROR_DESCRIPTION VARCHAR(2048)=NULL
WITH ENCRYPTION
AS
SET NOCOUNT ON;
BEGIN

/**** VERIFICAR SI LA SESSION DE USUARIO ESTA ACTIVA ****/
-----EXEC SP_ExecuteSQL N'dbo.spSeguridadUsuario @OP=''VerificarSessionActiva'''
/**** FIN - VERIFICAR SI LA SESSION DE USUARIO ESTA ACTIVA ****/--DECLARE @ERROR VARCHAR(500)

/*****     OPERACION POR DEFECTO    *****/
IF @OP IS NULL OR @OP = ''
BEGIN
	BEGIN TRANSACTION
	UPDATE [dbo].[SeguridadMessageException] SET
		-- [Usuario]=@Usuario
		 [ERROR_NUMBER]=@ERROR_NUMBER
		,[ERROR_SEVERITY]=@ERROR_SEVERITY
		,[ERROR_STATE]=@ERROR_STATE
		,[ERROR_PROCEDURE]=@ERROR_PROCEDURE
		,[ERROR_LINE]=@ERROR_LINE
		,[ERROR_MESSAGE]=@ERROR_MESSAGE
		,[ERROR_MESSAGE_MODIFIED]=@ERROR_MESSAGE_MODIFIED
		,[ERROR_DESCRIPTION]=@ERROR_DESCRIPTION
	WHERE
		[ID]=@ID
	
	IF @@ERROR<>0 BEGIN ROLLBACK TRANSACTION RETURN 1 END	
	COMMIT TRANSACTION
	RETURN 0
END


--- Si se llega a este punto es porque el @OP indicado no Existe en el Procedimiento Almacenado
IF @OP IS NOT NULL
	BEGIN
	SET @ParamAuxiliar='La Operacion "'+@OP+'" No esta definida en el Procedimiento almacenado "'+OBJECT_NAME(@@PROCID)+'", Revise!.'
	RAISERROR(@ParamAuxiliar,16,1)
	RETURN 1
END

END;
